package com.gongj.rabbit.helloword;

import com.gongj.rabbit.utils.RabbitMQUtil;
import com.rabbitmq.client.BasicProperties;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.MessageProperties;
import sun.plugin2.message.Message;

import java.io.IOException;

public class Provider2 {
    public static void main(String[] args) throws IOException {
        // 获取连接对象
        Connection conn = RabbitMQUtil.createConn();
        // 获取连接通道
        Channel channel = conn.createChannel();

        /**
         * 参数1：String queue 队列名称 如果队列不存在会自动创建
         * 参数2：boolean durable  队列是否持久化 true 持久化 false 不持久化,当rabbitmq重启时，队列会删除
         * 参数3：boolean exclusive 是否独占队列 true 独占队列 false 不独占
         * 参数4：boolean autoDelete 是否在消费完成后自动删除  true 自动删除,需要等消费者断开与队列连接
         * 参数5：Map<String, Object> arguments  额外附加参数
         */
        // 通道绑定消息队列
        channel.queueDeclare("hello-1",true,false,true,null);
        /**
         * 参数1：String exchange  交换机名称
         * 参数2：String routingKey  队列名称
         * 参数3：BasicProperties props  传递消息额外参数
         * 参数4：byte[] body  消息的具体内容
         *
         * PERSISTENT_TEXT_PLAIN:消息持久化
         */
        // 发布消息
        channel.basicPublish("","hello-1", MessageProperties.PERSISTENT_TEXT_PLAIN,"hello rabbitmq".getBytes());
        // 关闭连接
        RabbitMQUtil.closeConn(channel,conn);
    }
}
